Playing Programming in Haskell: Second Edition - Graham Hutton